added some development tools
[windows-sources.git] / developer / Samples / NET 4.6 / Samples for Parallel / Raytracer / Raytracer_CSharp / Plane.cs
blobbfa8c3c8b9ac6cb6d1fbe3fab883f92e380bcb30
1 //--------------------------------------------------------------------------
2 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // File: Plane.cs
6 //
7 //--------------------------------------------------------------------------
9 namespace Microsoft.ParallelComputingPlatform.ParallelExtensions.Samples
11 class Plane : SceneObject
13 public Vector Norm;
14 public double Offset;
16 public Plane(Vector norm, double offset, Surface surface) : base(surface) { Norm = norm; Offset = offset; }
18 public override ISect Intersect(Ray ray)
20 double denom = Vector.Dot(Norm, ray.Dir);
21 if (denom > 0) return ISect.Null;
22 return new ISect(this, ray, (Vector.Dot(Norm, ray.Start) + Offset) / (-denom));
25 public override Vector Normal(Vector pos)
27 return Norm;